﻿// 4756. 小明系列故事——女友的考验.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>


/*

https://www.acwing.com/problem/content/4759/
终于放寒假了，小明要和女朋友一起去看电影。

这天，女朋友想给小明一个考验，在小明正准备出发的时候，女朋友告诉他，她在电影院等他，小明过来的路线必须满足给定的规则：

假设小明在的位置是 1
 号点，女朋友在的位置是 n
 号点，则他们之间有 n−2
 个点可以走，小明每次走的时候只能走到比当前所在点编号大的位置；
小明来的时候不能按一定的顺序经过某些地方。比如，如果女朋友告诉小明不能经过 1→2→3
，那么就要求小明来的时候走过的路径不能包含有 1→2→3
 这部分，但是 1→3
 或者 1→2
 都是可以的，这样的限制路径可能有多条。
这让小明非常头痛，现在他把问题交给了你。

特别说明，如果 1,2,3
 这三个点共线，但是小明是直接从 1
 到 3
 然后再从 3
 继续，那么此种情况是不认为小明经过了 2
 这个点的。

现在，小明即想走最短的路尽快见到女朋友，又不想打破女朋友的规定，你能帮助小明解决这个问题吗？

输入格式
输入包含多组样例。

每组样例首先包含两个整数 n
 和 m
，其中 n
 代表有 n
 个点，小明在 1
 号点，女朋友在 n
 号点，m
 代表小明的女朋友有 m
 个要求；

接下来 n
 行每行输入 2
 个整数 x
 和 y
（x
 和 y
 均在 int 范围），代表这 n
 个点的位置（点的编号从 1
 到 n
）；

再接着是 m
 个要求，每个要求 2
 行，首先一行是一个 k
，表示这个要求和 k
 个点有关，然后是顺序给出的 k
 个点编号，代表小明不能走 k1→k2→k3…→ki
 这个顺序的路径；

两组数据之间还有一个空行。

n
 和 m
 等于 0
 的时候输入结束。

输出格式
对于每个样例，如果存在满足要求的最短路径，请输出这个最短路径，结果保留两位小数；否则，请输出 Can not be reached!。

数据范围
输入最多包含 60
 组数据。
2≤n≤50
,
1≤m≤100
,
2≤k≤5
输入样例：
3 1
1 1
2 1
3 1
2
1 2

2 1
0 0
1 1
2
1 2

5 3
0 0
5 3
1 2
1 22
5 21
3
1 2 3
2
4 5
2
1 5

0 0
输出样例：
2.00
Can not be reached!
21.65
*/
int main()
{
    std::cout << "Hello World!\n";
}

 